// user 模块相关

import { login } from '@/api/user'
import { delToken, getToken, setToken } from '@/utils/storage'

export default {
  namespaced: true,
  //  支持对象，也支持函数里返回对象
  state () {
    // token 先从本地取，如果没有，初始化为空
    return {
      token: getToken() || '',
      words: '测试数据'
    }
  },
  getters: {
  },
  mutations: {
    // 保存token到vuex，同时保存到storage
    setUserToken (state, newToken) {
      state.token = newToken
      setToken(newToken)
    },
    // 删除token
    delUserToken (state) {
      state.token = ''
      delToken()
    }
  },
  actions: {
    async loginAction (context, form) {
      // 发送登录请求
      // context是上下文：包括当前的state等
      const res = await login(form)
      context.commit('setUserToken', res.data.token)
    }
  },
  modules: {
  }
}
